# Contributor: Łukasz Jendrysik <scadu@yandex.com>
# Contributor: Natanael Copa <ncopa@alpinelinux.org>
# Maintainer: Natanael Copa <ncopa@alpinelinux.org>
pkgname=portaudio
pkgver=190600.20161030
pkgrel=1
pkgdesc="Cross platform, open-source, audio I/O library"
url="http://www.portaudio.com/"
arch="all"
license="MIT"
options="!check" # No unit tests, requires hardware to execute tests
makedepends="alsa-lib-dev jack-dev linux-headers autoconf automake libtool"
checkdepends="jack alsa-lib"
subpackages="$pkgname-dev libportaudiocxx:_cxx"
source="http://www.portaudio.com/archives/pa_stable_v${pkgver/./_}.tgz
	portaudio-pkgconfig-alsa.patch
	portaudio-audacity.patch
	"
builddir="$srcdir"/portaudio

prepare() {
	cd "$builddir"
	update_config_sub
	default_prepare
	autoreconf -if
	cd bindings/cpp
	update_config_sub
	autoreconf -if
}

build() {
	cd "$builddir"
	./configure \
		--build=$CBUILD \
		--host=$CHOST \
		--prefix=/usr \
		--disable-static \
		--with-jack \
		--with-alsa \
		--enable-cxx
	# race conditions in build cause build failures otherwise
	make -j1
}

check() {
	cd "$builddir"/bin
	local t1
	for t1 in pa_devs pa_fuzz pa_minlat paex_pink paex_read_write_wire paex_record \
		paex_saw paex_sine paex_write_sine paex_write_sine_nonint paqa_devs paqa_errs \
		paqa_latency patest1; do
		msg "$t1":
		./"$t1"
	done

	local t2
	for t2 in buffer callbackstop clip dither hang in_overflow latency leftright \
		longsine many maxsines mono multi_sine out_underflow prime ringmix sine8 \
		sine_channelmaps sine_formats sine_srate sine_time start_stop stop stop_playout \
		toomanysines two_rates underflow wire; do
		msg patest_"$t2":
		./patest_"$t2"
	done

}

package() {
	cd "$builddir"
	make -j1 DESTDIR="$pkgdir" install
}

_cxx() {
	pkgdesc="C++ bindings library for portaudio"
	mkdir -p "$subpkgdir"/usr/lib
	mv "$pkgdir"/usr/lib/libportaudiocpp* "$subpkgdir"/usr/lib
}

sha512sums="7ec692cbd8c23878b029fad9d9fd63a021f57e60c4921f602995a2fca070c29f17a280c7f2da5966c4aad29d28434538452f4c822eacf3a60af59a6dc8e9704c  pa_stable_v190600_20161030.tgz
d58e7f8717f9d451535546e16939a959f63ccdd21bcbbc8e08efde2722382b068603bae6d93449476b206c85160d8084d39b39748b4fb43ab2b6eaee704ba1f8  portaudio-pkgconfig-alsa.patch
e5a83dedadd8d66d24efc5062f339b2518dd707ccb856235f2beb6bb0f78a61b5439b708e52a64a62a02b5e55f97eaa8644b5f057b582d542730a42a5b731571  portaudio-audacity.patch"
